import request from '@/utils/request'
import type { BaseResponse, PaginationResponse } from '@/types/common/response'
import type {
  SystemConfig,
  CreateSystemConfigRequest,
  UpdateSystemConfigRequest
} from '@/types/api/system'

/**
 * 系统配置管理相关API
 */
export const systemApi = {
  /**
   * 获取系统配置列表
   * @param params 查询参数
   */
  getConfigList(params: { page: number; pageSize: number; keyword?: string }) {
    return request.get<BaseResponse<PaginationResponse<SystemConfig>>>('/system/configs', { params })
  },

  /**
   * 获取系统配置详情
   * @param id 配置ID
   */
  getConfigDetail(id: number) {
    return request.get<BaseResponse<SystemConfig>>(`/system/configs/${id}`)
  },

  /**
   * 创建系统配置
   * @param data 配置信息
   */
  createConfig(data: CreateSystemConfigRequest) {
    return request.post<BaseResponse<null>>('/system/configs', data)
  },

  /**
   * 更新系统配置
   * @param id 配置ID
   * @param data 配置信息
   */
  updateConfig(id: number, data: UpdateSystemConfigRequest) {
    return request.put<BaseResponse<null>>(`/system/configs/${id}`, data)
  },

  /**
   * 删除系统配置
   * @param id 配置ID
   */
  deleteConfig(id: number) {
    return request.delete<BaseResponse<null>>(`/system/configs/${id}`)
  }
}
